package com.avergel.metaserver.dto;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

public class Archivo implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idArchivo;
	private Usuario usuario;
	private Servidor servidor;
	private Categoria categoria;
	private String nombreOriginal;
	private String titulo;
	private String descripcion;
	private String tipo;
	private Date fecha;
	private Set<Pdf> pdfs = new HashSet<Pdf>(0);
	private Set<Imagen> imagens = new HashSet<Imagen>(0);
	private Set<Audio> audios = new HashSet<Audio>(0);

	/**
	 * Instancia un nuevo archivo.
	 */
	public Archivo() {
	}

	/**
	 * Instancia un nuevo archivo.
	 *
	 * @param idArchivo id archivo
	 */
	public Archivo(Integer idArchivo) {
		this.idArchivo = idArchivo;
	}

	/**
	 * Instancia un nuevo archivo.
	 *
	 * @param usuario usuario
	 * @param servidor servidor
	 * @param categoria categoria
	 */
	public Archivo(Usuario usuario, Servidor servidor, Categoria categoria) {
		this.usuario = usuario;
		this.servidor = servidor;
		this.categoria = categoria;
	}

	/**
	 * Instancia un nuevo archivo.
	 *
	 * @param usuario usuario
	 * @param servidor servidor
	 * @param categoria categoria
	 * @param nombreOriginal nombre original
	 * @param fecha fecha
	 */
	public Archivo(Usuario usuario, Servidor servidor, Categoria categoria, String nombreOriginal, Date fecha) {
		this.usuario = usuario;
		this.servidor = servidor;
		this.categoria = categoria;
		this.nombreOriginal = nombreOriginal;
		this.fecha = fecha;
	}

	/**
	 * Instancia un nuevo archivo.
	 *
	 * @param usuario usuario
	 * @param servidor servidor
	 * @param categoria categoria
	 * @param nombreOriginal nombre original
	 * @param fecha fecha
	 * @param pdfs pdfs
	 * @param imagens imagens
	 * @param audios audios
	 */
	public Archivo(Usuario usuario, Servidor servidor, Categoria categoria, String nombreOriginal,
			Date fecha, Set<Pdf> pdfs, Set<Imagen> imagens, Set<Audio> audios) {
		this.usuario = usuario;
		this.servidor = servidor;
		this.categoria = categoria;
		this.nombreOriginal = nombreOriginal;
		this.fecha = fecha;
		this.pdfs = pdfs;
		this.imagens = imagens;
		this.audios = audios;
	}

	/**
	 * Obtiene id archivo.
	 *
	 * @return id archivo
	 */
	public Integer getIdArchivo() {
		return this.idArchivo;
	}

	/**
	 * Establece id archivo.
	 *
	 * @param idArchivo nuevo id archivo
	 */
	public void setIdArchivo(Integer idArchivo) {
		this.idArchivo = idArchivo;
	}

	/**
	 * Obtiene usuario.
	 *
	 * @return usuario
	 */
	public Usuario getUsuario() {
		return this.usuario;
	}

	/**
	 * Establece usuario.
	 *
	 * @param usuario nuevo usuario
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	/**
	 * Obtiene servidor.
	 *
	 * @return servidor
	 */
	public Servidor getServidor() {
		return this.servidor;
	}

	/**
	 * Establece servidor.
	 *
	 * @param servidor nuevo servidor
	 */
	public void setServidor(Servidor servidor) {
		this.servidor = servidor;
	}

	/**
	 * Obtiene categoria.
	 *
	 * @return categoria
	 */
	public Categoria getCategoria() {
		return this.categoria;
	}

	/**
	 * Establece categoria.
	 *
	 * @param categoria nuevo categoria
	 */
	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	/**
	 * Obtiene nombre original.
	 *
	 * @return nombre original
	 */
	public String getNombreOriginal() {
		return this.nombreOriginal;
	}

	/**
	 * Establece nombre original.
	 *
	 * @param nombreOriginal nuevo nombre original
	 */
	public void setNombreOriginal(String nombreOriginal) {
		this.nombreOriginal = nombreOriginal;
	}

	/**
	 * Obtiene titulo.
	 *
	 * @return titulo
	 */
	public String getTitulo() {
		return titulo;
	}

	/**
	 * Establece titulo.
	 *
	 * @param titulo nuevo titulo
	 */
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	/**
	 * Establece descripcion.
	 *
	 * @param descripcion nuevo descripcion
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/**
	 * Obtiene descripcion.
	 *
	 * @return descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * Obtiene tipo.
	 *
	 * @return tipo
	 */
	public String getTipo() {
		return tipo;
	}

	/**
	 * Establece tipo.
	 *
	 * @param tipo nuevo tipo
	 */
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	/**
	 * Obtiene fecha.
	 *
	 * @return fecha
	 */
	public Date getFecha() {
		return this.fecha;
	}

	/**
	 * Establece fecha.
	 *
	 * @param fecha nuevo fecha
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	/**
	 * Obtiene pdfs.
	 *
	 * @return pdfs
	 */
	public Set<Pdf> getPdfs() {
		return this.pdfs;
	}

	/**
	 * Establece pdfs.
	 *
	 * @param pdfs nuevo pdfs
	 */
	public void setPdfs(Set<Pdf> pdfs) {
		this.pdfs = pdfs;
	}

	/**
	 * Obtiene imagens.
	 *
	 * @return imagens
	 */
	public Set<Imagen> getImagens() {
		return this.imagens;
	}

	/**
	 * Establece imagens.
	 *
	 * @param imagens nuevo imagens
	 */
	public void setImagens(Set<Imagen> imagens) {
		this.imagens = imagens;
	}

	/**
	 * Obtiene audios.
	 *
	 * @return audios
	 */
	public Set<Audio> getAudios() {
		return this.audios;
	}

	/**
	 * Establece audios.
	 *
	 * @param audios nuevo audios
	 */
	public void setAudios(Set<Audio> audios) {
		this.audios = audios;
	}
}
